home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / Palettes / PAStringList / PAFilenameListInspector.m < prev    next >
Text File  |  1995-06-12  |  3KB  |  80 lines

  1. #import "PAFilenameListInspector.h"
  2. #import <appkit/appkit.h>
  3. #import "PAFilenameList.h"
  4.  
  5. @implementation PAFilenameListInspector
  6.  
  7. - init
  8. {
  9.     char buf[MAXPATHLEN + 1];
  10.     id bundle;
  11.     
  12.     [super init];
  13.     
  14.     bundle = [NXBundle bundleForClass:[PAStringList class]];
  15.     [bundle getPath:buf forResource:"PAFilenameListInspector" ofType:"nib"];
  16.     [NXApp loadNibFile:buf owner:self withNames:NO fromZone:[self zone]];
  17.     [stringText setDelegate:self];
  18.     return self;
  19. }
  20.  
  21. - textDidGetKeys:sender isEmpty:(BOOL)flag 
  22. { [self perform:@selector(ok:) with:self afterDelay:500 cancelPrevious:YES]; return self; }
  23.  
  24. - (BOOL)wantsButtons { return NO; }
  25.  
  26. - revert:sender
  27. {
  28.     int i;
  29.     NXStream *s = NXOpenMemory(NULL, 0, NX_READWRITE);
  30.     
  31.     // Add strings to text object
  32.     for(i=0; i<[object count]; i++) NXPrintf(s,"%s\n", [object stringAt:i]);
  33.     NXSeek(s, 0, NX_FROMSTART);
  34.     [stringText readText:s];
  35.     NXCloseMemory(s, NX_FREEBUFFER);
  36.         
  37.     // Get the preload libraries, directories and filenames
  38.     [libraryText setStringValue:[object preLoadLibraries]];
  39.     [directoryText setStringValue:[object preLoadDirectories]];
  40.     [plFromAppDirSwitch setState:[object preLoadFromAppDir]];
  41.     [plFromBundleDirSwitch setState:[object preLoadFromBundleDir]];
  42.     [extensionText setStringValue:[object preLoadExtensions]];
  43.     [stripPathSwitch setState:[object preLoadStripPath]];
  44.     [stripExtSwitch setState:[object preLoadStripExt]];
  45.     [ifAbsentSwitch setState:[object preLoadIfAbsent]];
  46.     [sortedSwitch setState:[object preLoadSorted]];
  47.     
  48.     return [super revert:sender];
  49. }
  50.  
  51. - ok:sender
  52. {
  53.     char *buffer;
  54.  
  55.     [object empty];
  56.  
  57.     // Add all of the strings from text object
  58.     buffer = malloc([stringText textLength]*(sizeof(char)+1));
  59.     [stringText getSubstring:buffer start:0 length:[stringText textLength]+ 1];
  60.     [object addDelimitedFilenames:buffer delimiters:"\n" stripPath:NO 
  61.         stripExt:NO ifAbsent:[ifAbsentSwitch state] sorted:[sortedSwitch state] 
  62.         at:[object count]];    
  63.     free(buffer);
  64.  
  65.     // Set preload libraries, directories and extensions
  66.     [object setPreLoadLibraries:[libraryText stringValue]];
  67.     [object setPreLoadDirectories:[directoryText stringValue]];
  68.     [object setPreLoadFromAppDir:[plFromAppDirSwitch state]];
  69.     [object setPreLoadFromBundleDir:[plFromBundleDirSwitch state]];
  70.     [object setPreLoadExtensions:[extensionText stringValue]];
  71.     [object setPreLoadStripPath:[stripPathSwitch state]];
  72.     [object setPreLoadStripExt:[stripExtSwitch state]];
  73.     [object setPreLoadIfAbsent:[ifAbsentSwitch state]];
  74.     [object setPreLoadSorted:[sortedSwitch state]];
  75.     
  76.     return [super ok:sender];
  77. }
  78.  
  79. @end
  80.